﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web.UI.HtmlControls;

using AjaxControlToolkit;
using BizElements.Core;
using BizElements.BusinessLayer;

namespace BizElements.Web
{
    /// <summary>Represents a complex property binding, ie. a child weak or composite entity bound to a dedicated user control.</summary>
    public interface IComplexPropertyBinding
    {
        #region Properties.

        /// <summary>Name of the complex property.</summary>
        string PropertyName { get; }

        /// <summary>ID of user control that implements <see cref="IDataObjectUI"/> interface.</summary>
        string UserControlId { get; }

        /// <summary>IDs of decorative controls aroun bound user control such as HR elements...</summary>
        string[] DecorativeControlIds { get; }

        #endregion

        #region Methods.

        /// <summary>Gets user control.</summary>
        /// <param name="parentBizobjControl">Parent user control.</param>
        /// <returns>IDataObjectUI control.</returns>
        IDataObjectUI GetUserControl(Control parentBizobjControl);

        #endregion
    }
}
